package error;

import java.util.Objects;

public class ErrorContext {
    private final int lineno;
    private final ErrorType errorType;
    private String content;

    public ErrorContext(int lineno, ErrorType errorType, String content) {
        this.lineno = lineno;
        this.errorType = errorType;
        this.content = content;
    }

    public ErrorContext(int lineno, ErrorType errorType) {
        this.lineno = lineno;
        this.errorType = errorType;
    }

    @Override
    public int hashCode() {
        // 使用 Objects.hash() 生成基于 lineno 和 errorType 的哈希值
        return Objects.hash(lineno, errorType);
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true; // 如果是同一对象，返回 true
        if (obj == null || getClass() != obj.getClass())
            return false; // 类型不同，返回 false
        ErrorContext other = (ErrorContext) obj;
        // 比较 lineno 和 errorType 是否相等
        return this.lineno == other.lineno &&
                this.errorType == other.errorType;
    }

    public int getLineno() {
        return lineno;
    }

    public ErrorType getErrorType() {
        return errorType;
    }

    public String getContent() {
        return content;
    }
}
